from app import create_app, db
from app.utils.qiniu_storage import verify_qiniu_config
from app.models import Category, Video, Tag
import os
import click

app = create_app()

@app.cli.command("init-db")
def init_db_command():
    """初始化数据库命令"""
    from scripts.init_db import init_db
    init_db()

def init_app():
    """初始化应用"""
    try:
        with app.app_context():
            # 创建必要的目录
            os.makedirs(app.instance_path, exist_ok=True)
            os.makedirs(os.path.join(app.instance_path, 'temp'), exist_ok=True)
            
            # 确保数据库目录存在
            db_path = app.config['SQLALCHEMY_DATABASE_URI'].replace('sqlite:///', '')
            os.makedirs(os.path.dirname(db_path), exist_ok=True)
            
            # 创建所有数据库表
            db.create_all()
            
            # 验证七牛云配置
            verify_qiniu_config()
    except Exception as e:
        app.logger.error(f"初始化应用失败: {str(e)}")
        raise

# 在应用启动时初始化
init_app()

if __name__ == '__main__':
    app.run(host='127.0.0.1', port=8000) 